AWS CLI V2でCloudWatch Logsのロググループをtailできるようになりました!
AWS Lambdaの開発などでAmazon CloudWatch Logsに送っているログをリアルタイムにtail
したい時があります。
AWS CLI v2を利用すると、$ tail -f
相当のことが$ aws logs tail --follow LOG-GROUP-NAME
で出来るようになりました。
* feature:logs: Added the logs tail command. This tracks new additions to a CloudWatch Logs group printing updates as they become available. See #3729.
この機能を簡単に紹介します。
準備:AWS CLI v2をインストール
なにはともあれ、AWS CLI v2 をインストールしましょう。
AWS CLI バージョン 2 のインストール - AWS Command Line Interface
ロググループをtailする
AWS CLI v2 では Linux の tail
コマンド相当の処理を CloudWatch Logsのロググループに対して行う aws logs tail
というコマンドが追加されています。
$ aws logs tail /aws/lambda/dumb 2020-02-15T16:34:30.842000+00:00 2020/02/15/[$LATEST]a5db3f2963784efbb4c9e03092609ad7 START RequestId: 1204dea1-274c-4a3a-97f4-552321cb2cff Version: $LATEST 2020-02-15T16:34:30.843000+00:00 2020/02/15/[$LATEST]a5db3f2963784efbb4c9e03092609ad7 hello world! 2020-02-15T16:34:30.847000+00:00 2020/02/15/[$LATEST]a5db3f2963784efbb4c9e03092609ad7 END RequestId: 1204dea1-274c-4a3a-97f4-552321cb2cff 2020-02-15T16:34:30.848000+00:00 2020/02/15/[$LATEST]a5db3f2963784efbb4c9e03092609ad7 REPORT RequestId: 1204dea1-274c-4a3a-97f4-552321cb2cff Duration: 5.30 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 55 MB Init Duration: 124.61 ms
デフォルトでは過去10分のログが表示されます。
--since
オプションで期間を指定出来ます。
例えば、過去5分のログを表示したい場合、--since 5m
とします。
$ aws logs tail --since 5m /aws/lambda/dumb
利用可能な単位は以下です。
- s : 秒
- m : 分
- h : 時間
- d : 日
- w : 週
--since 5h30m
のように複数の単位を併用することは出来ません。
ロググループをtail -fする
tail -f
のように新しいログだけを出力したいときは、--follow
オプションを追加します。
ポーリングしながら、新規ログだけが出力されます。
$ aws logs tail \ --follow \ /aws/lambda/dumb
ログをフィルター
CloudWatch Logsのフィルター構文を利用して、出力するログをフィルター出来ます。
例えば、文字列「ERROR」を含んだログを出力したい場合、--filter ERROR
とします。
$ aws logs tail \ --filter ERROR \ /aws/lambda/dumb
--filter
は--follow
と併用可能です。
「ERROR」または「WARN」を含む新規ログを監視したい場合、次のようにします。
$ aws logs tail \ --follow --filter '?ERROR ?WARN' \ /aws/lambda/dumb
ログを簡易表示
ログストリームを省くなど表示をシンプルにしたい場合、--format short
オプションを追加します。
$ aws logs tail \ --follow --filter '?ERROR ?WARN' \ --format short \ /aws/lambda/dumb 2020-02-15T17:10:15 [WARNING] 2020-02-15T17:10:15.769Z f9b915c9-99bc-47e1-9096-8461eaca81df warn log messages 2020-02-15T17:10:15 [ERROR] 2020-02-15T17:10:15.786Z f9b915c9-99bc-47e1-9096-8461eaca81df error log messages
最後に
AWS CLI v2では、CloudWatch Logsのロググループを tail できるようになりました。
以前は awslogs のようなサードパーティー・ツールをインストールする必要がありましたが、AWS CLIに組み込まれたことで、シームレスにログ調査できるようになったのは嬉しいですね。